# -*- coding: UTF-8 -*-
"""
@File    ：4.数据输出.py
@Author  ：techPang
@Date    ：2025/2/8 16:45 
@Version ：1.0
"""
from pyspark import SparkConf, SparkContext

# 创建sparkConf类对象
conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")

# 基于配置类创建SparkContext对象
sc = SparkContext(conf=conf)

# 1.数据输入  将py中容器数据转为rdd数据
rdd = sc.parallelize([1, 2, 3, 4, 5], 1)

# 2.数据处理
rdd_f = rdd.filter(lambda x: x > 2)

# 3.数据输出
# --------------------------------将rdd数据转为py中容器的数据---------------------------
# 转为list对象
rdd_list: list = rdd_f.collect()

# 转为一个数(两两聚合)
rdd_r: int = rdd.reduce(lambda x, y: x + y)
print(rdd_r)

# 获取有多少个数据
rdd_count = rdd.count()
print(rdd_count)

# 取出前几个元素，组成list返回
rdd_prf = rdd.take(3)
print(rdd_prf)

# --------------------------------将rdd数据转为文件中的数据-------------------------------
# 输出到一个不存在的文件夹中
rdd.saveAsTextFile("./output")

sc.stop()
